﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace Soundless_Project
{
    class LevelZero:SceneBase
    {
        Personagem jogador;
        Objeto2D circulo;
        Objeto2D luz;
        Objeto2D cenarioBeta;
        Objeto2D armadilha;
        Objeto2D porta;

        public override void start()
        {
            jogador = new Personagem(Game1.instance.Content.Load<Texture2D>("personagem"));
            InimigoManager.texturaDosInimigos = Game1.instance.Content.Load<Texture2D>("inimigo");
            cenarioBeta = new Objeto2D(Game1.instance.Content.Load<Texture2D>("cenario0"));
            circulo = new Objeto2D(Game1.instance.Content.Load<Texture2D>("circulo"));
            luz = new Objeto2D(Game1.instance.Content.Load<Texture2D>("luz"));
            armadilha = new Objeto2D(Game1.instance.Content.Load<Texture2D>("armadilha"));
            porta = new Objeto2D(Game1.instance.Content.Load<Texture2D>("porta"));
            circulo.escala = 1.7f;
            luz.posicao.X = 400;
            luz.posicao.Y = 250;
            cenarioBeta.posicao.X = 400;
            cenarioBeta.posicao.Y = 240;
            cenarioBeta.escala = 2;
            armadilha.posicao.X = 266;
            armadilha.posicao.Y = -185;
            porta.posicao.X = 592;
            porta.posicao.Y = 280;

                       
        }

        public override void update()
        {
            CorrigePosicao(jogador);
            
            circulo.posicao = jogador.posicao;
            jogador.Update();
            InimigoManager.Update(jogador);
        }

        public override void draw(SpriteBatch spriteBatch)
        {
            cenarioBeta.Draw(spriteBatch);
            armadilha.Draw(spriteBatch);
            jogador.Draw(spriteBatch);
            InimigoManager.Draw(spriteBatch);
            porta.Draw(spriteBatch);
            circulo.Draw(spriteBatch);
        }

        public override void terminate()
        {
            
        }

        public void CorrigePosicao(Objeto2D objeto)
        {
            //Cenario Zero
            if (objeto.posicao.X <= 210) //Borda esquerda
            {
                objeto.posicao.X = 210;
            }
            else if (objeto.posicao.X >= 592) //Borda direita
            {
                objeto.posicao.X = 592;
            }

            if (objeto.posicao.Y <= -225) //Borda superior
            {
                objeto.posicao.Y = -225;
            }
            else if (objeto.posicao.Y >= 703) //Borda inferior
            {
                objeto.posicao.Y = 703;
            }

            if (objeto.posicao.Y >= -50) //Parede do meio
            {
                if ((objeto.posicao.X >= 358) && (objeto.posicao.X < 370))
                {
                    objeto.posicao.X = 358;
                }
                else if ((objeto.posicao.X >= 370) && (objeto.posicao.X < 424))
                {
                    objeto.posicao.X = 424;
                }
            }

            if ((objeto.posicao.X >= 424) && (objeto.posicao.Y > 285))
            {
                objeto.posicao.Y = 285;
            }
            else if ((objeto.posicao.X > 365) && (objeto.posicao.X < 415) && (objeto.posicao.Y >= -57))
            {
                objeto.posicao.Y = -57;
            }
        }
    }
}
